package oa.common

import groovy.xml.MarkupBuilder
import oa.system.Func

class HomeController {

    def index() {
        List list = Func.listOrderByCode()
        StringBuilder sb = new StringBuilder()
        def lastCode = ""
        def suffix = "00" // 大类代码后缀
        list.each { row->
            def code = row.code
            def subCode = code.substring(2, 4)
            // 如果是大类，并且是新大类，且已开始，那么结束旧小类和旧大类；然后开始新大类
            if (subCode == suffix) {
                // 前面是否已经有代码？
                if (lastCode != "") {
                    if (!lastCode.endsWith(suffix)) {
                        // 结束旧小类
                        sb.append("</dl>")
                    }
                    // 结束旧大类
                    sb.append("</li>")
                }
                sb.append("<li><a href=\"javascript:;\">${row.name}</a>")
            } else {
                // 如果上一个是大类，那么开始小类
                if (lastCode.endsWith(suffix)) {
                    sb.append("<dl>")
                }
                sb.append("<dd><a href='${row.url}'>${row.name}</a></dd>")
            }
            lastCode = code
        }
        // 如果最后一个是小类，那么结束它；
        if (!lastCode.endsWith(suffix)) {
            sb.append("</dl>")
        }
        // 如果非空，那么结束大类
        if (lastCode != "") {
            sb.append("</li>")
        }

        return [list: list, menu: sb.toString()]
    }

    def index2() {
        def lastCode = ""
        def suffix = "00" // 大类代码后缀
        def strHtml = new StringWriter()
        MarkupBuilder mb = new MarkupBuilder(strHtml)
        mb.ul {
            //def suffix = "00" // 大类代码后缀
            for (func in Func.listOrderByCode()) {
                if (func.code.endsWith(suffix)) {
                    li{a(href: "javascript:;", func.name)

                    }
                }
                else {
                    dd{
                        a(href: "${func.url}", func.name)
                    }
                }
            }
        }
        //print strHtml.toString()
        render (view: "index", model: [menu: strHtml.toString()])
    }

}
